AWS雲端基礎
目錄
Amazon Web Services (AWS) 簡介
Amazon Web Services(AWS)是一個安全的雲平台,提供大量基於雲的全球性產品。由於這些產品通過網際網路提供,用戶可以按需訪問可能需要的計算、儲存、網路、資料庫和其他 IT 資源,以及用於管理這些資源的工具。一般而言,AWS 是透過 Web 服務的方式來提供雲端服務,而 Web 服務是使軟體自身可通過網際網路或私有網路(內部網路)提供的任何軟體。Web 服務對應用程式編程介面 (Application Program Interface,API) 互動的請求和回應使用標準化格式,例如可擴展標記語言(XML)或 JavaScript 物件表示法(JSON)。Web 服務不依賴於任何一種作業系統或程式語言。
以下是一些 AWS 常見的產品:
- AWS Identity and Access Management(IAM)讓用戶能夠安全地管理對 AWS 服務和資源的訪問。通過 IAM,用戶可以創建和管理 AWS 用戶和組,可以使用 IAM 權限來允許和拒絕用戶和組對 AWS 資源的訪問。
- Amazon EC2:AWS 計算資源,相當於雲端的一台虛擬電腦。
- AWS Lambda:無伺服器的程式執行服務產品。
- Amazon S3:是一種受管的雲儲存解決方案,設計為無縫擴展並提供 11 個 9 的持久性。可以在一個儲存桶中儲存幾乎任意多的物件,還可以在儲存桶中寫入、讀取和刪除物件。
- Amazon API Gateway:可讓開發人員輕鬆地建立、發佈、維護、監控和保護任何規模的 API。API 可作為應用程式的「前門」,以便從後端服務存取資料、商業邏輯或功能。
- Amazon DynamoDB:是無伺服器的 NoSQL 資料庫服務,能開發任何規模的現代應用程式。作為無伺服器資料庫,DynamoDB 無需冷啟動、無需版本升級、無維護時段、無需修補,也無需停機維護。
- Amazon Rekognition:無需從頭開始建置機器學習 (ML) 模型和基礎設施,即可將預先訓練或可自訂的電腦視覺 API 快速新增至應用程式中。
在 AWS 中新增和管理資源的方式有三種,都是基於類似 REST 的通用 API(作為 AWS 的基礎)構建而成:
- AWS 管理控制台:該控制台為 AWS 提供的大部分功能提供豐富的圖形界面。
- AWS 命令行界面(AWS CLI):AWS CLI 提供一套可以從 Linux、macOS 或 Microsoft Windows 中的命令腳本啓動的實用工具。
- 開發工具包(SDK):AWS 提供幾種常用程式語言訪問 AWS 的開發套件。這可讓用戶在現有應用程式中輕鬆使用 AWS資源,同時支持完全通過程式新增用於佈署和監控複雜系統的應用程式。
AWS 全球基礎設施
AWS提供了全球基礎設施的設計和構建,主要是希望提供一個具有高質量的全球網路服務,並提供靈活、可靠、可擴展的安全雲計算環境。下圖是截至 2023 年 5 月的 AWS 全球基礎設施地圖(https://aws.amazon.com/tw/about-aws/global-infrastructure),顯示了❶全球 31 個地理區域,其中包含了 99 個可用區域,而且已宣告計劃將在加拿大、以色列、馬來西亞、紐西蘭和泰國增加 5 個 AWS 區域和 15 個可用區域;❷是地圖上的圖示,淡綠色的圓點表示已經建置好的區域,紅色的圓點則是即將佈建的區域與可用區域,將滑鼠移至圓點會顯示詳細的內容。
圖 1. AWS 全球基礎設施地圖
AWS 區域(Regions)是一個實際的地理位置,擁有一個或多個可用區域(Availability Zones,以下簡稱AZ),可用區域是由一個或多個資料中心組成。為了要實現容錯能力和穩定性,區域之間彼此隔離,一個區域中的資源不會自動複寫到其他區域,在特定區域中儲存資料時,資料不會複寫到該區域之外。但如果有跨多區域資料轉移的業務需要,用戶需自行負責在多個區域間複寫資料。
一般來說,用戶只要申請一個 AWS 帳戶,就可以使用全球所有區域的 AWS 服務。但因為國家政策問題,有些區域的帳戶是需要額外申請,且與其他區域是不能互相溝通的。Amazon AWS(中國)帳戶只能訪問北京區域和寧夏區域,不能看到全球其他區域。獨立的 AWS GovCloud(美國)區域則是專門針對美國政府機構和客戶,方便他們將敏感工作負載移至雲中,從而滿足其特定的法規和合規性要求。
選擇儲存資料和使用 AWS 服務的最佳區域,通常會考慮幾個因素。
- 資料監管和法律要求:當地法律可能會要求某些資訊的保留具有地域限制。比方說金融交易資料必須要儲存在當地的資料中心,不可以放在境外的資料中心。
- 延遲:通常把應用程式和資料放在距離用戶最近的區域中運行,這樣有助於減少延遲。
- 服務:每個區域提供的AWS服務不盡相同,所以要先確認需要的服務是否在該區域有提供。
- 成本:相同的服務在不同的區域,會有不同的定價,主要是考慮建置成本或是攤提的時間,所以在可接受的選擇下,可以選擇教便宜的區域來使用該服務。
每個 AWS 區域都有多個相互隔離的位置,稱為可用區(Availability Zones)。每個可用區提供多個資料中心(通常為三個),所以比單個資料中心擁有更高的可用性、容錯能力和可擴展性,來運行應用程式和資料庫。可用區是 AWS 全球基礎設施的完全隔離分區。可用區擁有自己的電源基礎設施,通常與其他可用區在地理位置上相隔數千米以上,但不會超過 100 千米。可用區之間提供高吞吐量且完全冗餘的專用光纖,與高頻寬、低延遲的網路互相聯接,可實現可用區之間的同步複寫。AWS 建議跨可用區進行複寫,以獲得彈性與高度可用的應用程式,在彈性部分,因為跨可用區,所以可以進行負載均衡,來容納更多的請求;而當在災難發生時,如雷擊、龍捲風、地震等危險,能夠承受暫時或長期的可用區故障。
AWS 基礎設施的基礎是資料中心(Data Center),客戶無法指定用於部署資源的資料中心,可用區是客戶可以指定的最精細的規範級別。資料中心則是實際資料的存放位置,Amazon 運行著具有高可用性的先進資料中心,經過專門的安全性設計,並考慮到以下因素:
- 每個地理位置都經過仔細評估以降低環境風險。
- 資料中心具有冗餘設計,在保持服務水平的同時能夠預測故障並具有容錯能力。
- 為確保可用性,跨多個可用區對重要系統組件進行了備份。
- 為了確保性能,AWS 會持續監控服務的使用情況,以部署基礎設施來支持可用性承諾和要求。
- 資料中心位置不公開,對它們的所有訪問都受限制。
- 如果出現故障,自動化流程會將資料流從受影響的區域轉移出去。
AWS 節點(Points)泛指邊緣站點(Edge Locations)和區域邊緣緩存(Regional Edge Caches),位於全世界大部分主要城市,當用戶從源伺服器獲取內容時,AWS會將內容儲存在 AWS 節點,以減少延遲。當內容因為不被頻繁訪問因而不足以保留在邊緣站點內時,則使用區域邊緣緩存保留這些內容。
AWS 定價
AWS 有三個基本的成本基準:
在大多數情況下,不必為入站資料傳輸或與同一 AWS 區域其他 AWS 服務之間的資料傳輸付費。但存在一些例外情況,因此請務必在開始使用 AWS 服務前確認資料傳輸費率。出站資料傳輸費用會跨服務匯總,然後按出站資料傳輸費率收取。此項費用在每月的帳單中顯示為 AWS 資料傳出費用。
此原則是 AWS 定價的基礎,在每個月月底,按實際使用量付費。用戶可以隨時開始或停止使用產品,無需簽署長期合同。
AWS 提供一系列雲端計算服務,對於每項服務,用戶只需按實際需要的資源量付費,這種按使用付費的定價模式包括:
- 按實際使用量付費(On-Demand)
- 預留容量,付費更少,通常是針對 Amazon EC2 與 Amazon RDS 等計算服務。
- 使用越多,付費越低,通常是針對儲存與傳輸服務。Amazon S3 採取分級定價,使用量越大,每 GB 支付的費用越少。以在新加坡地區的標準 S3 的儲存定價為例,第一個 50 TB/月,每 GB 收費0.025 USD;下一個 450 TB/月,每 GB 收費0.024 USD;高於 500 TB/月,每 GB 收費0.023 USD。此外,對於AWS的資料傳輸服務,也有著相同的分級定價優惠,記得,資料傳入通常是免費的。
- AWS 規模越大,價格越低。
AWS 提供多種不額外收費的服務
- Amazon Virtual Private Cloud (Amazon VPC):可以使用在 AWS 雲中預置一個邏輯上隔離的網路,從而在自己定義的虛擬網路中啓動 AWS 資源。
- AWS Identity and Access Management (IAM):控制用戶對 AWS 產品和資源的訪問權限。
- AWS Organizations:可用於合併多個 AWS 帳戶或多個 Amazon Internet Services Private Limited (AISPL) 帳戶的付款。整合帳單可以:
- 單一帳單用於多個帳戶。
- 能夠跟蹤每個帳戶的費用。
- 得益於綜合使用量帶來的批量定價折扣,可以降低費用。
- 可以使用整合帳單來整合所有帳戶並享受分級優惠。
- AWS Elastic Beanstalk:在 AWS 雲中快速部署和管理應用程式的服務。
- AWS CloudFormation:為開發人員和系統管理員提供了一種簡便方法,透過文字描述,就可以創建一連串相關的 AWS 資源,通過有序且可預測的方式對其進行資源預配置。
- Auto Scaling Group:自動擴縮可根據用戶定義的條件,自動添加或刪除EC2資源,讓使用的資源在需求高峰期無縫增加以保持性能,並在需求平淡期自動減少以最大限度降低成本。
- AWS OpsWorks:是一項應用程式管理服務,可助用戶輕鬆部署和運行各種類型和規模的應用程式。